(0) Obligation:

Clauses:

balance(T, TB) :- balance55(T, XX0, XX1, [], .(','(nil, -(XX0, XX0)), XX1), [], .(','(TB, -(I, [])), X), X, I, []).
balance55(nil, C, T, T, A, B, A, B, X, X).
balance55(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT) :- ','(balance55(L, XX0, XX1, .(','(nil, -(XX2, XX2)), XX3), HR1, TR1, H, T, IH, .(V, IT1)), balance55(R, XX2, XX3, NT, HR, TR, HR1, TR1, IT1, IT)).
balance5(nil, C, T, T, A, B, A, B, X, X) :- balance55(nil, C, T, T, A, B, A, B, X, X).
balance5(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT) :- balance55(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT).
balance(nil, -(X, X), -(A, B), -(A, B), -(.(','(nil, -(C, C)), T), T)) :- balance5(nil, C, T, T, A, B, A, B, X, X).
balance(tree(L, V, R), -(IH, IT), -(.(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T))), -(HR, TR), -(.(','(nil, -(XX0, XX0)), XX1), NT)) :- balance5(tree(L, V, R), XX0, XX1, NT, HR, TR, .(','(tree(LB, VB, RB), -(A, D)), H), .(','(LB, -(A, .(VB, X))), .(','(RB, -(X, D)), T)), IH, IT).

Query: balance(g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

balance55A(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) :- balance55A(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25).
balance55A(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) :- ','(balance55cA(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25), balance55A(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)).
balance55B(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) :- balance55A(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21).
balance55B(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) :- ','(balance55cA(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21), balance55B(X3, X17, X18, X6, X7, X19, X20, X21)).
balanceD(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) :- balance55A(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21).
balanceD(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) :- ','(balance55cA(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21), balance55A(X3, X13, X14, X22, X23, X24, X25, X15, X16, X21, X4, X26)).
balanceD(tree(X1, X2, X3), tree(X4, X5, X6)) :- ','(balance55cC(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16), balance55B(X3, X9, X10, X7, X8, X11, X12, X16)).

Clauses:

balance55cA(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7).
balance55cA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) :- ','(balance55cA(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25), balance55cA(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)).
balance55cB(nil, X1, [], X2, X3, .(','(nil, -(X2, X2)), X3), [], []).
balance55cB(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) :- ','(balance55cA(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21), balance55cB(X3, X17, X18, X6, X7, X19, X20, X21)).
balance55cC(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6).
balance55cC(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20) :- ','(balance55cA(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25), balance55cA(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)).

Afs:

balanceD(x1, x2)  =  balanceD(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
balanceD_in: (b,f)
balance55A_in: (b,f,f,f,f,f,f,f,f,f,b,f)
balance55cA_in: (b,f,f,f,f,f,f,f,f,f,b,f)
balance55cC_in: (b,f,f,f,f,f,f,f,f,f,f,f,f,b,f)
balance55B_in: (b,f,f,f,f,f,f,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U7_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55A_in_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21))
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U1_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55A_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U3_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55A_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55cA_in_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55cA_out_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21)) → U9_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55A_in_gaaaaaaaaaga(X3, X13, X14, X22, X23, X24, X25, X15, X16, X21, X4, X26))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55cA_out_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X13, X14, X22, X23, X24, X25, X15, X16, X21, X4, X26)
BALANCED_IN_GA(tree(X1, X2, X3), tree(X4, X5, X6)) → U10_GA(X1, X2, X3, X4, X5, X6, balance55cC_in_gaaaaaaaaaaaaga(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16))
U10_GA(X1, X2, X3, X4, X5, X6, balance55cC_out_gaaaaaaaaaaaaga(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16)) → U11_GA(X1, X2, X3, X4, X5, X6, balance55B_in_gaaaaaaa(X3, X9, X10, X7, X8, X11, X12, X16))
U10_GA(X1, X2, X3, X4, X5, X6, balance55cC_out_gaaaaaaaaaaaaga(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16)) → BALANCE55B_IN_GAAAAAAA(X3, X9, X10, X7, X8, X11, X12, X16)
BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → U4_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55A_in_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21))
BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)
BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21))
U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)) → U6_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55B_in_gaaaaaaa(X3, X17, X18, X6, X7, X19, X20, X21))
U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)) → BALANCE55B_IN_GAAAAAAA(X3, X17, X18, X6, X7, X19, X20, X21)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7) → balance55cA_out_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20)
balance55cC_in_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6) → balance55cC_out_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6)
balance55cC_in_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20) → U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25))
U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25)) → U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cC_out_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55cA_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_in_gaaaaaaaaaga(x1, x11)
nil  =  nil
balance55cA_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_out_gaaaaaaaaaga(x1, x11)
U13_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U13_gaaaaaaaaaga(x1, x2, x3, x19, x21)
U14_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U14_gaaaaaaaaaga(x1, x2, x3, x19, x26)
balance55cC_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_in_gaaaaaaaaaaaaga(x1, x14)
balance55cC_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_out_gaaaaaaaaaaaaga(x1, x14)
U17_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U17_gaaaaaaaaaaaaga(x1, x2, x3, x19, x21)
U18_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U18_gaaaaaaaaaaaaga(x1, x2, x3, x19, x26)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
BALANCED_IN_GA(x1, x2)  =  BALANCED_IN_GA(x1)
U7_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U7_GA(x1, x2, x3, x4, x5, x11)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U1_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_GAAAAAAAAAGA(x1, x2, x3, x19, x21)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x1, x2, x3, x19, x21)
U3_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_GAAAAAAAAAGA(x1, x2, x3, x19, x21)
U8_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U8_GA(x1, x2, x3, x4, x5, x11)
U9_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U9_GA(x1, x2, x3, x4, x5, x11)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x1, x2, x3, x7)
U11_GA(x1, x2, x3, x4, x5, x6, x7)  =  U11_GA(x1, x2, x3, x7)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U4_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_GAAAAAAA(x1, x2, x3, x17)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x1, x2, x3, x17)
U6_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_GAAAAAAA(x1, x2, x3, x17)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U7_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55A_in_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21))
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U1_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55A_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U3_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55A_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)
BALANCED_IN_GA(tree(tree(X1, X2, X3), X4, X5), tree(tree(X6, X7, X8), X9, X10)) → U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55cA_in_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55cA_out_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21)) → U9_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55A_in_gaaaaaaaaaga(X3, X13, X14, X22, X23, X24, X25, X15, X16, X21, X4, X26))
U8_GA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, balance55cA_out_gaaaaaaaaaga(X1, X11, X12, X13, X14, X15, X16, .(','(X10, -(X17, [])), .(','(X6, -(X18, .(X7, X19))), .(','(X8, -(X19, .(X9, X17))), X20))), X20, X18, X2, X21)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X13, X14, X22, X23, X24, X25, X15, X16, X21, X4, X26)
BALANCED_IN_GA(tree(X1, X2, X3), tree(X4, X5, X6)) → U10_GA(X1, X2, X3, X4, X5, X6, balance55cC_in_gaaaaaaaaaaaaga(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16))
U10_GA(X1, X2, X3, X4, X5, X6, balance55cC_out_gaaaaaaaaaaaaga(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16)) → U11_GA(X1, X2, X3, X4, X5, X6, balance55B_in_gaaaaaaa(X3, X9, X10, X7, X8, X11, X12, X16))
U10_GA(X1, X2, X3, X4, X5, X6, balance55cC_out_gaaaaaaaaaaaaga(X1, X7, X8, X9, X10, X11, X12, X4, X13, X5, X14, X6, X15, X2, X16)) → BALANCE55B_IN_GAAAAAAA(X3, X9, X10, X7, X8, X11, X12, X16)
BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → U4_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55A_in_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21))
BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)
BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21))
U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)) → U6_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55B_in_gaaaaaaa(X3, X17, X18, X6, X7, X19, X20, X21))
U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)) → BALANCE55B_IN_GAAAAAAA(X3, X17, X18, X6, X7, X19, X20, X21)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7) → balance55cA_out_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20)
balance55cC_in_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6) → balance55cC_out_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6)
balance55cC_in_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20) → U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25))
U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25)) → U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cC_out_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55A_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55A_in_gaaaaaaaaaga(x1, x11)
balance55cA_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_in_gaaaaaaaaaga(x1, x11)
nil  =  nil
balance55cA_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_out_gaaaaaaaaaga(x1, x11)
U13_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U13_gaaaaaaaaaga(x1, x2, x3, x19, x21)
U14_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U14_gaaaaaaaaaga(x1, x2, x3, x19, x26)
balance55cC_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_in_gaaaaaaaaaaaaga(x1, x14)
balance55cC_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_out_gaaaaaaaaaaaaga(x1, x14)
U17_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U17_gaaaaaaaaaaaaga(x1, x2, x3, x19, x21)
U18_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U18_gaaaaaaaaaaaaga(x1, x2, x3, x19, x26)
balance55B_in_gaaaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  balance55B_in_gaaaaaaa(x1)
BALANCED_IN_GA(x1, x2)  =  BALANCED_IN_GA(x1)
U7_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U7_GA(x1, x2, x3, x4, x5, x11)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U1_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U1_GAAAAAAAAAGA(x1, x2, x3, x19, x21)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x1, x2, x3, x19, x21)
U3_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U3_GAAAAAAAAAGA(x1, x2, x3, x19, x21)
U8_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U8_GA(x1, x2, x3, x4, x5, x11)
U9_GA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)  =  U9_GA(x1, x2, x3, x4, x5, x11)
U10_GA(x1, x2, x3, x4, x5, x6, x7)  =  U10_GA(x1, x2, x3, x7)
U11_GA(x1, x2, x3, x4, x5, x6, x7)  =  U11_GA(x1, x2, x3, x7)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U4_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U4_GAAAAAAA(x1, x2, x3, x17)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x1, x2, x3, x17)
U6_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U6_GAAAAAAA(x1, x2, x3, x17)

We have to consider all (P,R,Pi)-chains

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 13 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7) → balance55cA_out_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20)
balance55cC_in_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6) → balance55cC_out_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6)
balance55cC_in_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20) → U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25))
U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25)) → U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cC_out_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55cA_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_in_gaaaaaaaaaga(x1, x11)
nil  =  nil
balance55cA_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_out_gaaaaaaaaaga(x1, x11)
U13_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U13_gaaaaaaaaaga(x1, x2, x3, x19, x21)
U14_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U14_gaaaaaaaaaga(x1, x2, x3, x19, x26)
balance55cC_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_in_gaaaaaaaaaaaaga(x1, x14)
balance55cC_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_out_gaaaaaaaaaaaaga(x1, x14)
U17_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U17_gaaaaaaaaaaaaga(x1, x2, x3, x19, x21)
U18_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U18_gaaaaaaaaaaaaga(x1, x2, x3, x19, x26)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x1, x2, x3, x19, x21)

We have to consider all (P,R,Pi)-chains

(8) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U2_GAAAAAAAAAGA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7) → balance55cA_out_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55cA_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_in_gaaaaaaaaaga(x1, x11)
nil  =  nil
balance55cA_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_out_gaaaaaaaaaga(x1, x11)
U13_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U13_gaaaaaaaaaga(x1, x2, x3, x19, x21)
U14_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U14_gaaaaaaaaaga(x1, x2, x3, x19, x26)
BALANCE55A_IN_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  BALANCE55A_IN_GAAAAAAAAAGA(x1, x11)
U2_GAAAAAAAAAGA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U2_GAAAAAAAAAGA(x1, x2, x3, x19, x21)

We have to consider all (P,R,Pi)-chains

(10) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X19) → U2_GAAAAAAAAAGA(X1, X2, X3, X19, balance55cA_in_gaaaaaaaaaga(X1, X2))
U2_GAAAAAAAAAGA(X1, X2, X3, X19, balance55cA_out_gaaaaaaaaaga(X1, X2)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X19)
BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X19) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X2)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X6) → balance55cA_out_gaaaaaaaaaga(nil, X6)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X19) → U13_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_in_gaaaaaaaaaga(X1, X2))
U13_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_out_gaaaaaaaaaga(X1, X2)) → U14_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_in_gaaaaaaaaaga(X3, X19))
U14_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_out_gaaaaaaaaaga(X3, X19)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X19)

The set Q consists of the following terms:

balance55cA_in_gaaaaaaaaaga(x0, x1)
U13_gaaaaaaaaaga(x0, x1, x2, x3, x4)
U14_gaaaaaaaaaga(x0, x1, x2, x3, x4)

We have to consider all (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U2_GAAAAAAAAAGA(X1, X2, X3, X19, balance55cA_out_gaaaaaaaaaga(X1, X2)) → BALANCE55A_IN_GAAAAAAAAAGA(X3, X19)
    The graph contains the following edges 3 >= 1, 4 >= 2

  • BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X19) → BALANCE55A_IN_GAAAAAAAAAGA(X1, X2)
    The graph contains the following edges 1 > 1, 1 > 2

  • BALANCE55A_IN_GAAAAAAAAAGA(tree(X1, X2, X3), X19) → U2_GAAAAAAAAAGA(X1, X2, X3, X19, balance55cA_in_gaaaaaaaaaga(X1, X2))
    The graph contains the following edges 1 > 1, 1 > 2, 1 > 3, 2 >= 4

(13) YES

(14) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21))
U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)) → BALANCE55B_IN_GAAAAAAA(X3, X17, X18, X6, X7, X19, X20, X21)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7) → balance55cA_out_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20)
balance55cC_in_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6) → balance55cC_out_gaaaaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, .(','(X4, -(.(X5, X6), .(X7, X8))), .(','(X9, -(X8, [])), X10)), X10, X4, .(X5, X6), X7, X8, X9, X10, X5, X6)
balance55cC_in_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20) → U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25))
U17_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, .(','(X16, -(X15, [])), .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18))), X18, X13, X2, X25)) → U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U18_gaaaaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cC_out_gaaaaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, tree(X10, X11, X12), X13, X14, X15, X16, .(','(X10, -(X13, .(X11, X17))), .(','(X12, -(X17, .(X14, X15))), X18)), X19, X20)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55cA_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_in_gaaaaaaaaaga(x1, x11)
nil  =  nil
balance55cA_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_out_gaaaaaaaaaga(x1, x11)
U13_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U13_gaaaaaaaaaga(x1, x2, x3, x19, x21)
U14_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U14_gaaaaaaaaaga(x1, x2, x3, x19, x26)
balance55cC_in_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_in_gaaaaaaaaaaaaga(x1, x14)
balance55cC_out_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)  =  balance55cC_out_gaaaaaaaaaaaaga(x1, x14)
U17_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U17_gaaaaaaaaaaaaga(x1, x2, x3, x19, x21)
U18_gaaaaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U18_gaaaaaaaaaaaaga(x1, x2, x3, x19, x26)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x1, x2, x3, x17)

We have to consider all (P,R,Pi)-chains

(15) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3), X4, X5, X6, X7, .(','(tree(X8, X9, X10), -(X11, X12)), X13), .(','(X8, -(X11, .(X9, X14))), .(','(X10, -(X14, X12)), X15)), X16) → U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21))
U5_GAAAAAAA(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X17, X18, X19, X20, X13, X15, X16, X2, X21)) → BALANCE55B_IN_GAAAAAAA(X3, X17, X18, X6, X7, X19, X20, X21)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7) → balance55cA_out_gaaaaaaaaaga(nil, X1, .(','(nil, -(X2, X2)), X3), X2, X3, X4, X5, X4, X5, .(X6, X7), X6, X7)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20) → U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_in_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25))
U13_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, balance55cA_out_gaaaaaaaaaga(X1, X4, X5, X21, X22, X23, X24, X15, X17, X18, X2, X25)) → U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_in_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20))
U14_gaaaaaaaaaga(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X20, X21, X22, X23, X24, X25, balance55cA_out_gaaaaaaaaaga(X3, X21, X22, X6, X7, X8, X9, X23, X24, X25, X19, X20)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X4, X5, X6, X7, X8, X9, .(','(tree(X10, X11, X12), -(X13, X14)), X15), .(','(X10, -(X13, .(X11, X16))), .(','(X12, -(X16, X14)), X17)), X18, X19, X20)

The argument filtering Pi contains the following mapping:
tree(x1, x2, x3)  =  tree(x1, x2, x3)
balance55cA_in_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_in_gaaaaaaaaaga(x1, x11)
nil  =  nil
balance55cA_out_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)  =  balance55cA_out_gaaaaaaaaaga(x1, x11)
U13_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21)  =  U13_gaaaaaaaaaga(x1, x2, x3, x19, x21)
U14_gaaaaaaaaaga(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26)  =  U14_gaaaaaaaaaga(x1, x2, x3, x19, x26)
BALANCE55B_IN_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  BALANCE55B_IN_GAAAAAAA(x1)
U5_GAAAAAAA(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)  =  U5_GAAAAAAA(x1, x2, x3, x17)

We have to consider all (P,R,Pi)-chains

(17) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3)) → U5_GAAAAAAA(X1, X2, X3, balance55cA_in_gaaaaaaaaaga(X1, X2))
U5_GAAAAAAA(X1, X2, X3, balance55cA_out_gaaaaaaaaaga(X1, X2)) → BALANCE55B_IN_GAAAAAAA(X3)

The TRS R consists of the following rules:

balance55cA_in_gaaaaaaaaaga(nil, X6) → balance55cA_out_gaaaaaaaaaga(nil, X6)
balance55cA_in_gaaaaaaaaaga(tree(X1, X2, X3), X19) → U13_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_in_gaaaaaaaaaga(X1, X2))
U13_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_out_gaaaaaaaaaga(X1, X2)) → U14_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_in_gaaaaaaaaaga(X3, X19))
U14_gaaaaaaaaaga(X1, X2, X3, X19, balance55cA_out_gaaaaaaaaaga(X3, X19)) → balance55cA_out_gaaaaaaaaaga(tree(X1, X2, X3), X19)

The set Q consists of the following terms:

balance55cA_in_gaaaaaaaaaga(x0, x1)
U13_gaaaaaaaaaga(x0, x1, x2, x3, x4)
U14_gaaaaaaaaaga(x0, x1, x2, x3, x4)

We have to consider all (P,Q,R)-chains.

(19) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • U5_GAAAAAAA(X1, X2, X3, balance55cA_out_gaaaaaaaaaga(X1, X2)) → BALANCE55B_IN_GAAAAAAA(X3)
    The graph contains the following edges 3 >= 1

  • BALANCE55B_IN_GAAAAAAA(tree(X1, X2, X3)) → U5_GAAAAAAA(X1, X2, X3, balance55cA_in_gaaaaaaaaaga(X1, X2))
    The graph contains the following edges 1 > 1, 1 > 2, 1 > 3

(20) YES